草庐IT

Android JsonArray 和 JsonObject 反序列化

全部标签

java - toJSONString() 未为 JSONObject 类型定义

我创建一个新的JSONObject并写入文件的代码:JSONObjectobj=newJSONObject();obj.put("name","abcd");obj.put("age",newInteger(100));JSONArraylist=newJSONArray();list.add("msg1");list.add("msg2");list.add("msg3");obj.put("messages",list);try{FileWriterfile=newFileWriter("c:\\test.json");file.write(obj.toJSONString());

java - 反序列化 Gson 中的通用列表

我想写一个泛型函数,它用Gson反序列化一个泛型类型列表这是代码:privateListGetListFromFile(Stringfilename){//ReadtextfileBufferedReaderreader;Stringdata="";try{reader=newBufferedReader(newFileReader(filename));data=reader.readLine();reader.close();}catch(FileNotFoundExceptionex){}catch(IOExceptionex){}if(data==null){ListSpiel

Java 9 Compact String Serialization-反序列化&数据传输

在Java9中,String的内部表示已从字符数组更改为字节数组。假设我在运行Java9的系统上序列化我的字符串数据,然后尝试在Java8系统上反序列化它。还要考虑反之亦然的情况。我能想到的另一种情况是使用RMI或JMS在Java8和Java9系统之间传输String数据。这些场景怎么可能奏效?是否所有处理String的方法都已升级以处理此类情况? 最佳答案 虽然String在内存中的表示确实发生了变化,但它的Serializable表示没有。您是否真的尝试过在Java9中序列化String并在Java8中反序列化它?我认为您不会遇

java - 如何使用 Jackson 注释序列化此 JSON?

我有以下JSON:{fields:{"foo":"foovalue","bar":"barvalue"}}我写了一个pojo如下:publicclassMyPojo{@JsonProperty("fields")privateListfields;staticclassField{@JsonProperty("foo")privateStringfoo;@JsonProperty("bar")privateStringbar;//Gettersandsettersforthose2}这显然失败了,因为我的json字段“fields”是一个hashmap,而不是一个列表。我的问题是:是否

java - 使用 Gson 序列化一个 POJO

我使用GSON序列化POJO——更改前后的对象。由Struts2设置的修改后的一个(称之为A)可以很容易地序列化为Json。而修改之前通过iBatis(称之为B)从数据库中获取的POJO无法序列化。错误消息说:忘记注册类型适配器?我已经阅读了GsonAPI。但是我不认为为每个POJO注册一个类型适配器是个好主意。是什么导致B无法序列化?我为我的POJO写了一个clone(),从B克隆的对象也可以完成。这令人困惑...有人可以回答我吗?更改前(B的克隆):{"id":"6429B5329C544711A9848AF243D10E4E","idType":"未选择","firstDate"

java - Jackson - 将属性序列化/反序列化为 JSON 值

使用Jackson2,我正在寻找一种通用方法将对象序列化为单个值(然后将它们序列化回来,只填充那个单个字段)而不必重复创建JsonSerializer/JsonDeserializer来处理每种情况。@JsonIdentityInfo注释非常接近,但有点偏离了标记,因为据我所知,它总是会在第一次出现时序列化完整的子对象。这是我想做的一个例子。给定类:classCustomer{Longid=99;Stringname="Joe";//Lotsmoreproperties}classOrder{StringorderNum="11111"@WhateverAnnotationsINeed

java - 序列化哈希表,Java

我以前从未使用过序列化。我想除了我的“Q”大小写转换的最后一部分外,其他都没有问题。publicclassTest{publicstaticvoidmain(Stringargs[]){Storestore=newStore();FileOutputStreamfos;ObjectOutputStreamoos=null;try{fos=newFileOutputStream(newFile("table.obj"));oos=newObjectOutputStream(fos);}catch(IOExceptione1){e1.printStackTrace();}这继续包含更多代码

java - 序列化要由 Java 等反序列化的 C 结构的最佳方法

目前,我正在使用fread()/fwrite()将C/C++结构中的一些数据保存并加载到文件中。这在这个C应用程序中工作时工作得很好(每当结构更改以将sizeof()参数更新为fread()/fwrite()时我都可以重新编译),但是我如何在事先不知道的情况下将此文件加载到其他程序中C结构的sizeof()s?特别是,我编写了另一个Java应用程序来可视化该C结构二进制文件中包含的数据,但我想要一个关于如何读取该二进制文件的通用解决方案。(而不是我必须在C结构发生变化时手动将sizeof()s放入Java应用程序源中......)我正在考虑序列化为某种类型的文本或XML,但我不确定从哪

java - 使用 Jackson 仅反序列化某些 JSON 标签

如果我不想反序列化所有标签以便我可以使用此构造函数,有没有一种方法不必从JSON中“手动”提取我需要的标签?publicclassTweet{publicStringusername;publicStringmessage;publicStringimage_url;@JsonCreatorpublicTweet(@JsonProperty("from_user")Stringusername,@JsonProperty("text")Stringmessage,@JsonProperty("profile_image_url")Stringurl){this.username=use

java - 使用序列化将对象传递给另一个 JVM - 相同的 Java 版本和 jars(都运行我们的应用程序)

更新:现在使用map。想要向其他实例发送内容的类发送对象,即路由字符串。使用对象流,使用Javaserializable将对象写入servlet。先写String再写对象接收servlet将输入流包装在一个ObjectInputStream周围。首先读取字符串,然后读取对象。路由字符串决定是否进行。更通用的方法可能是发送类名及其声明的方法或Springbean名称,但这对我们来说已经足够了。原始问题了解基本方法,但需要详细步骤。也知道我可以使用Jaxb或RMI或EJB...但想使用纯序列化到bytearray然后编码将其从jvm1中的servlet1发送到jvm2中的servlet2(